package com.fwmagic.spark.core.transformations

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
  * distinct用于去重，我们生成的RDD可能有重复的元素，
  * 使用distinct方法可以去掉重复的元素, 不过此方法涉及到shuffle(混洗)，操作开销很大
  */
object DistinctDemo {
    def main(args: Array[String]): Unit = {
        val conf: SparkConf = new SparkConf()
                .setAppName(this.getClass.getSimpleName)
                .setMaster("local[*]")

        val sc: SparkContext = new SparkContext(conf)

        val rdd: RDD[Int] = sc.parallelize(List(1,2,3,4,5,6,6,7,8),3)

        val rdd2: RDD[Int] = rdd.distinct()

        rdd2.collect().foreach(println)

        sc.stop()
    }

}
